package com.ruoyi.orders.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 疑义账单对象 t_doubtful_bill
 * 
 * @author ruoyi
 * @date 2025-08-20
 */
public class TDoubtfulBill extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 疑义账单ID，自增主键 */
    private Long billId;

    /** 申诉单号 */
    @Excel(name = "申诉单号")
    private String appealNumber;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderNumber;

    /** 订车人 */
    @Excel(name = "订车人")
    private String ordererName;

    /** 订车人手机号 */
    @Excel(name = "订车人手机号")
    private String ordererPhone;

    /** 司机 */
    @Excel(name = "司机")
    private String driverName;

    /** 司机手机号 */
    @Excel(name = "司机手机号")
    private String driverPhone;

    /** 提交时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date submitTime;

    /** 疑义原因 */
    @Excel(name = "疑义原因")
    private String doubtReason;

    /** 处理类型 */
    @Excel(name = "处理类型")
    private String handleType;

    /** 处理结果 */
    @Excel(name = "处理结果")
    private String handleResult;

    /** 处理方案 */
    @Excel(name = "处理方案")
    private String handleSolution;

    /** 调账前金额（元） */
    @Excel(name = "调账前金额", readConverterExp = "元=")
    private BigDecimal amountBeforeAdjust;

    /** 调账后金额（元） */
    @Excel(name = "调账后金额", readConverterExp = "元=")
    private BigDecimal amountAfterAdjust;

    /** 状态 */
    @Excel(name = "状态")
    private String status;

    /** 操作时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date operateTime;

    /** 操作人 */
    @Excel(name = "操作人")
    private String operator;

    public void setBillId(Long billId) 
    {
        this.billId = billId;
    }

    public Long getBillId() 
    {
        return billId;
    }

    public void setAppealNumber(String appealNumber) 
    {
        this.appealNumber = appealNumber;
    }

    public String getAppealNumber() 
    {
        return appealNumber;
    }

    public void setOrderNumber(String orderNumber) 
    {
        this.orderNumber = orderNumber;
    }

    public String getOrderNumber() 
    {
        return orderNumber;
    }

    public void setOrdererName(String ordererName) 
    {
        this.ordererName = ordererName;
    }

    public String getOrdererName() 
    {
        return ordererName;
    }

    public void setOrdererPhone(String ordererPhone) 
    {
        this.ordererPhone = ordererPhone;
    }

    public String getOrdererPhone() 
    {
        return ordererPhone;
    }

    public void setDriverName(String driverName) 
    {
        this.driverName = driverName;
    }

    public String getDriverName() 
    {
        return driverName;
    }

    public void setDriverPhone(String driverPhone) 
    {
        this.driverPhone = driverPhone;
    }

    public String getDriverPhone() 
    {
        return driverPhone;
    }

    public void setSubmitTime(Date submitTime) 
    {
        this.submitTime = submitTime;
    }

    public Date getSubmitTime() 
    {
        return submitTime;
    }

    public void setDoubtReason(String doubtReason) 
    {
        this.doubtReason = doubtReason;
    }

    public String getDoubtReason() 
    {
        return doubtReason;
    }

    public void setHandleType(String handleType) 
    {
        this.handleType = handleType;
    }

    public String getHandleType() 
    {
        return handleType;
    }

    public void setHandleResult(String handleResult) 
    {
        this.handleResult = handleResult;
    }

    public String getHandleResult() 
    {
        return handleResult;
    }

    public void setHandleSolution(String handleSolution) 
    {
        this.handleSolution = handleSolution;
    }

    public String getHandleSolution() 
    {
        return handleSolution;
    }

    public void setAmountBeforeAdjust(BigDecimal amountBeforeAdjust) 
    {
        this.amountBeforeAdjust = amountBeforeAdjust;
    }

    public BigDecimal getAmountBeforeAdjust() 
    {
        return amountBeforeAdjust;
    }

    public void setAmountAfterAdjust(BigDecimal amountAfterAdjust) 
    {
        this.amountAfterAdjust = amountAfterAdjust;
    }

    public BigDecimal getAmountAfterAdjust() 
    {
        return amountAfterAdjust;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setOperateTime(Date operateTime) 
    {
        this.operateTime = operateTime;
    }

    public Date getOperateTime() 
    {
        return operateTime;
    }

    public void setOperator(String operator) 
    {
        this.operator = operator;
    }

    public String getOperator() 
    {
        return operator;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("billId", getBillId())
            .append("appealNumber", getAppealNumber())
            .append("orderNumber", getOrderNumber())
            .append("ordererName", getOrdererName())
            .append("ordererPhone", getOrdererPhone())
            .append("driverName", getDriverName())
            .append("driverPhone", getDriverPhone())
            .append("submitTime", getSubmitTime())
            .append("doubtReason", getDoubtReason())
            .append("handleType", getHandleType())
            .append("handleResult", getHandleResult())
            .append("handleSolution", getHandleSolution())
            .append("amountBeforeAdjust", getAmountBeforeAdjust())
            .append("amountAfterAdjust", getAmountAfterAdjust())
            .append("status", getStatus())
            .append("operateTime", getOperateTime())
            .append("operator", getOperator())
            .toString();
    }
}
